This relates to communication networks, and more particularly, to forwarding network packets through communication networks.
Packet-based networks such as the internet and local data networks that are connected to the internet include network switches. Network switches are used in forwarding packets from packet sources to packet destinations. The packets may be sometimes referred to as frames.
It can be difficult or impossible to control the switches of one vendor using the equipment of another vendor. This is because the switch equipment of one vendor may use a different operating system and set of control procedures than the switch equipment of another vendor. To address the challenges associated with controlling different types of switch platforms, cross-platform protocols have been developed. These protocols allow centralized control of otherwise incompatible switches.
Cross-platform controller clients can be included on the switches in a network. The controller clients are able to communicate with a corresponding controller server over network paths. Because the controller clients can be implemented on a variety of switch hardware, it is possible for a single controller to control switch equipment that might otherwise be incompatible.
Each network switch on which a controller client has been implemented may include a flow table with entries that specify how packets are to be forwarded by that switch. A controller server routes traffic through the network by modifying the flow tables of the network switches to create data paths. For example, the controller can communicate with each network switch associated with a desired path to route a data packet from a packet source to a packet destination.
The controller server may implement network policies that control the flow of network packets through the network. For example, the controller server can block network traffic between selected packet sources and packet destinations. It may be difficult to implement network policies in networks that include many switches (e.g., tens, hundreds, thousands of switches or more), because each network policy may require modifications to the flow tables of many network switches.
It would therefore be desirable to be able to provide improved arrangements for applying network policy to a communications network.